This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present invention that are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Feature descriptors are used in a variety of imaging applications, including object recognition applications, 3D reconstruction applications, image retrieval applications, camera localization applications, and the like. Such feature descriptors may be used to compute abstractions of image information. The widespread use of feature descriptors has driven the development of a large number of alternative descriptors that are based on various concepts, such as Gaussian derivatives, moment invariants, complex features, phase-based local features, or the like. However, efficient descriptors are expected to have low computational complexity, easy matching characteristics, and high memory efficiency. Current descriptors generally do not include all of these qualities. For example, the descriptor called SIFT is highly discriminative but, being a 128-vector, is relatively slow to compute and match descriptors. The descriptor called SURF is faster to compute and match descriptors. However, since the SURF descriptor is a 64-vector of floating point values, it is represented by 256 bytes. This size may become costly as the number of descriptors to be stored increases. Several other extensions of SIFT have also been proposed, including dimensionality reduction techniques, quantization based techniques, descriptor binarization techniques, and the like. However, these techniques remain time consuming.
The descriptors described in “BRIEF: Binary Robust Independent Elementary Features,” by Colander, et al., “BRIEF: Computing a Local Binary Descriptor Very Fast,” by Colander, et al., and “BRISK: Binary Robust Invariant Scalable Keypoints,” by Leutenegger, et al., respectively referred to as the BRIEF descriptor and the BRISK descriptor, are directly built through intensity based comparisons. However, even though BRIEF is relatively easy to compute, memory efficient, and fast on matching, the accuracy of BRIEF is not always as high as expected. The size of the BRIEF descriptor can be easily adjusted within the range from 16 to 64 bytes. In contrast, the BRISK descriptor has only been defined as a 64 bytes descriptor. Thus, the size of the BRISK descriptor can be cumbersome for many applications.